using SQLite;

namespace FileImportSystem2.Db.Entities;

/// <summary>
/// 神州数据实体类
/// 用于存储神州物流系统中的运单数据
/// 包含运单的基本信息、结算信息及匹配状态
/// </summary>
public class ShenzhouData
{
    /// <summary>
    /// 数据日期
    /// 格式为"yyyy-MM-dd"
    /// </summary>
    public string Date { get; set; } = null!; // "yyyy-MM-dd"

    /// <summary>
    /// 运单编号
    /// 作为主键，唯一标识一条神州运单数据
    /// </summary>
    [PrimaryKey]
    public string 单号 { get; set; } = string.Empty;
    
    /// <summary>
    /// 结算对象名称
    /// 表示该运单的结算方
    /// </summary>
    public string 结算对象 { get; set; } = string.Empty;
    
    /// <summary>
    /// 揽收业务员姓名
    /// 负责揽收该运单的业务员
    /// </summary>
    public string 揽收业务员 { get; set; } = string.Empty;
    
    /// <summary>
    /// 分部信息
    /// 表示该运单所属的分部
    /// 可能通过匹配表自动填充
    /// </summary>
    public string 分部 { get; set; } = string.Empty;
    
    /// <summary>
    /// 发件仓信息
    /// 表示该运单的发件仓库
    /// 可能通过匹配表自动填充
    /// </summary>
    public string 发件仓 { get; set; } = string.Empty;

    /// <summary>
    /// 发件仓匹配状态
    /// 0: 未匹配, 1: 已匹配
    /// 标识发件仓信息是否已成功匹配
    /// </summary>
    public int Is发件仓Matched { get; set; } = 0; // 0: 未匹配, 1: 已匹配

    /// <summary>
    /// 分部匹配状态
    /// 0: 未匹配, 1: 已匹配
    /// 标识分部信息是否已成功匹配
    /// </summary>
    public int Is分部Matched { get; set; } = 0; // 0: 未匹配, 1: 已匹配

    /// <summary>
    /// 数据导入时间
    /// 记录数据被导入到系统的时间
    /// 默认值为当前系统时间
    /// </summary>
    public DateTime ImportTime { get; set; } = DateTime.Now;
}